about GAN

GAN은 적대적인 특징 때문에 훈련시키기 어렵다.
흔히 생성자가 작은 부분 공간에 갇혀 단순한 샘플만 생성하는 것을 학습할 때를 모드 붕괴(mode Collapse)라고 부르며,
생성자가 데이터의 전체 분포를 학습하지 못하고 부분 공간에 초점을 맞추는데 그쳤을 때 발생한다.
모드 붕괴로 인해 단순한 샘플만 생성하는 생성자
GAN을 훈련시키기 위한 기법
미니 판별 배치(mini-batch discrimination)
진짜나 가짜로만 이루어진 새믈로 배치를 따로 판별자에게 주입한다.
판별자는 배치가 진짜인지 가짜인지 판단하기 위해 배치 안의 샘플을 비교한다.
만약 모드 붕괴 상태에 있다면, 진짜 샘플로만 구성된 배치가 가짜 배치보다 다양성이 높을 것이다.
특성 매칭(feature matching)
생성자의 목적함수를 조금 수정한다.
판별자의 중간 표현(특성 맵)을 기반으로 원본 이미지와 합성 이미지 간의 차이를 최소화하는 추가적인 항을 더한다.
경험 재생(experience replay)
GAN이 몇가지 모드에 갇히는걸 피하기 위해서 저장된 예전 샘플 일부를 판별자에게 주입하여
생성자가 이전 모드를 다시 생성하지 않도록 방지한다.
랜덤 시드(random seed)
다른 여러개의 GAN을 훈련하여 단일 모델이 아니라 모델의 조합이 전체 데이터 분포를 커버하게 만든다.